Consumers and business entities are increasingly using mobile devices such as smart phones, tablet computing devices, personal digital assistants, other handheld devices, etc., for performing various personal, work, and business or enterprise related tasks. In addition to using mobile devices for different forms of communication, for example, voice communication, messaging, etc., these mobile devices also allow consumers and business entities to perform other functions such as accessing and displaying websites, sending and receiving electronic mails, capturing and displaying images, playing videos, music and other forms of audio, social networking, etc. These functions are typically performed by software applications that are either built into the mobile devices or that are run on top of operating systems of the mobile devices.
Competing mobile device manufacturers, developers, and other service providers typically offer hardware and software in the form of mobile operating systems or in some cases, a combination of both hardware and software, which has led to the development of dissimilar and incompatible mobile device platforms and environments due to the use of different operating systems which have their own programming environments and software development tools. Developing mobile applications for these different operating systems and mobile devices requires varying design techniques, programming languages, separate operating system specific or device specific software code and compilations, etc. Therefore, developers find it difficult and challenging to develop mobile applications that are portable across multiple types of mobile devices. Furthermore, developers require specific technical knowledge and expertise in software programming with specific programming languages and an understanding of specific mobile operating system platforms for developing mobile applications for different types of mobile operating systems and/or mobile devices. Since a high level of skill and expertise is needed to create, deploy and update mobile applications, many non-technical users and users who lack experience in a specific programming language or a specific mobile operating system cannot develop and/or distribute mobile applications.
Conventional mobile development platforms typically allow users to develop mobile applications of a particular type that cannot be configured or changed and therefore limit the development and utilization of various features and specific functions included in mobile devices and their respective mobile operating systems. The scope of these mobile applications are limited to consumer applications such as access to website content, graphics, video, books, links to a social profile, etc. These mobile development platforms allow non-technical users to develop only generic business to consumer (B2C) applications with simplified rules. Business to consumer (B2C) type of mobile applications comprising metadata, for example, an application type are relatively easier to develop and are supported by most mobile development platforms. There is a need for providing pre-coded software components that are connected to backend databases to enable non-technical users to create mobile applications of different types without coding and by unifying similar or disparate software components from multiple data sources.
Moreover, conventional mobile development platforms only provide access to a single layer of data that allow, for example, web pages to be assembled on the fly but do not provide support for hierarchical layers of data, data interaction, and business rules that allow non-technical enterprise users to quickly assemble software components to develop enhanced enterprise grade mobile applications. Moreover, conventional mobile development platforms do not allow backend integration of the developed mobile application with the user's computing device or with backend databases for non-technical users.
Furthermore, context and behavioral elements, for example, user behavior, user intent, etc., varies from one user to another, and typical mobile application development platforms do not provide components or tools that are adaptable based on the context and behavioral elements. Moreover, conventional mobile application development platforms do not support dynamic data mapping for establishing a link between the data being rendered and multiple data sources prior to creation of a mobile application. Furthermore, non-technical users may not be aware of enhanced functions and features that can be implemented in a mobile application for enhancing the mobile application. There is a need for providing recommendations to a user for addition of enhanced functions and features in the mobile application based on a real time analysis of similar mobile applications developed, for example, based on functionality, an industry, and/or a category related to the mobile application.
Wearable devices, for example, the Google Glass® of Google Inc., iWatch of Apple Inc., etc., and associated technology are becoming more widespread and are being used in everyday life for carrying out various activities. Moreover, due to recent adoption of policies, for example, bring your own devices (BYOD), organizations are in constant need of mobile application development platforms that can be used by non-technical users to design and develop complex mobile applications that can be deployed across various devices including wearable devices with varying degrees of form factors, to securely manage upgrades and downloads through an application store, and to manage usage statistics to gain better visibility on mobile application usage. Typical mobile application development platforms do not allow non-technical users to develop and deploy complex business to business (B2B) mobile applications for these wearable devices.
Furthermore, machine to machine (M2M) applications use a device, for example, a sensor, a meter, etc., to capture an event, for example, temperature, an inventory level, etc., relay the captured event, for example, through a wireless, wired or hybrid network to a mobile application, and translate the captured event into meaningful information. The M2M applications allow both wireless and wired systems to communicate with other devices of the same ability. Typical mobile application development platforms do not combine device data, for example, sensor data with application business processes to enable decision making based on real time analytics and mashup applications.
Hence, there is a long felt but unresolved need for a computer implemented method and system that provides encapsulated pre-coded software components to perform multiple functions in the form of a software package and enterprise grade mobile applications that are connected with backend databases, enables creation of enhanced software components or widgets without coding, provides support for native, web and cross platform mobile applications, provides an interface to dynamically map backend data sources and add new fields on the fly, provides connection of data from multiple data sources, enables creation of complex business to business (B2B) mobile applications that require complex business rules and data validation, allows development of M2M applications or sensor specific applications that combine sensor data with business processes and creation of process and sensor composite or mashup applications, and implements application programming interfaces for backend integration of the developed mobile application with the user's computing device and with backend databases. Furthermore, there is a need for a computer implemented method and system that enables a user to create mobile applications with software components that comprise hierarchical layers of data and that adapt based on the context and behavioral elements of the user when deployed on mobile devices. Furthermore, there is a need for a computer implemented method and system that enables non-technical users to develop and deploy complex mobile applications for various devices including the wearable devices without any programming.